﻿using System.Collections.Generic;
using FoodRaidersWebAPI.domainnew.Article;
using FoodRaidersWebAPI.domainnew.Comment;
using FoodRaidersWebAPI.domainnew.Favorite;
using FoodRaidersWebAPI.domainnew.other;
using Microsoft.EntityFrameworkCore;

namespace FoodRaidersWebAPI.Models
{
    public class FoodContext:DbContext
    {
        public FoodContext(DbContextOptions<FoodContext> options) : base(options)
        {
            this.Database.EnsureCreated();
        }

        public DbSet<User> Users { get; set; }//用户表
        public DbSet<FoodArticle> FoodArticles { get; set; }//美食分享表
        public DbSet<MerchantArticle> MerchantArticles { get; set; }//商家分享表
        public DbSet<RaiderArticle> RaiderArticles { get; set; }//攻略分享表
        public DbSet<FavoriteFoodArticle> FavoriteFoodArticles { get; set; }//收藏美食分享表
        public DbSet<FavoriteMerchantArticle> FavoriteMerchantArticles { get; set; }//收藏商家分享表
        public DbSet<FavoriteRaiderArticle> FavoriteRaiderArticles { get; set; }//收藏攻略分享表
        public DbSet<Food> Foods { get; set; }//美食表
        public DbSet<Merchant> Merchants { get; set; }//商家表
        public DbSet<Raider> Raiders { get; set; }//攻略表
        public DbSet<Article> Articles { get; set; }//文章结构表
        public DbSet<ArticleComment> ArticleComments { get; set; }//文章评论表
        public DbSet<LabelObject> LabelObjects { get; set; }//食物标签表
        public DbSet<Picture> Pictures { get; set; }//图片表
        public DbSet<Dash> Dashes { get; set; }//菜品表
        /**
         * efcore数据库中的表取名与deset变量名相同
         * 没有变量默认为类名
         * controller端使用dbset的include方法贪婪加载是通过属性名找到对应表，因此完成贪婪加载要保证类中的属性名与表名相同
         * 当属性名与类名不一样时，就应该在这里把对应变量写出来，并且把变量名与属性名对应
         */
    }
}